/**
 * File Name: Constanten.java
 *
 * Date: 18/12/2009
 *
 */
package gui;

import java.awt.Color;
import java.awt.Dimension;

/**
 * Declaratie van de meest gebruikte constanten voor het ganse project
 *
 * @author Michiel Declercq
 * @author Stijn Delbeke
 * @author Dieter Deriemaeker
 * @author Gregory Nickmans
 *
 */
public final class Constanten {

    /**
     * Als de random int tussen 0 en 100 kleiner is dan dit getal, wordt een orka aangemaakt
     */
    public final static int MAX_AANTAL_ORKAS = 7;

    /**
     *  Het totale aantal dieren in het aquarium.
     *  Dit kan eventueel met één verhoogd worden indien er geen Orka gecreëerd werd
     */
    public final static int AANTAL_DIEREN = 40;

    /**
     *  Aantal obstakels in het aquarium
     */
    public final static int AANTAL_OBSTAKELS = 3;

    /**
     *  Aantal stromingsgebieden in het aquarium
     */
    public final static int AANTAL_STROMINGEN = 2;

    /**
     *  Maximum snelheid van de Orka's
     */
    public final static double MAX_SNELHEID_ORKA = 8;

    /**
     *  Maximum snelheid van de Vissen
     */
    public final static double MAX_SNELHEID_VIS = 5;

    /**
     *  Maximum draaihoek van de Orka's
     */
    public final static int MAX_THETA_ORKA = 15;

    /**
     *  Maximum draaihoek van de Vissen
     */
    public final static int MAX_THETA_VIS = 10;

    /**
     *  Kleur van de Orka's
     */
    public final static Color KLEUR_ORKA = Color.RED;

    /**
     *  Kleur van de Vissen
     */
    public final static Color KLEUR_VIS = Color.GREEN;

    /**
     *  Achtergrondkleur van het aquarium
     */
    public final static Color KLEUR_ACHTERGROND = Color.BLUE;

    /**
     *  Kleur van een stromingsgebied
     */
    public final static Color KLEUR_STROMING = Color.GRAY;

    /**
     *  Kleur van een obstakel
     */
    public final static Color KLEUR_OBSTAKEL = Color.BLACK;

    /**
     *  Vanaf deze afstand worden andere AquariumObjecten gedetecteerd
     *  Deze afstand moet altijd groter zijn dan de SEPARATE_DISTANCE
     */
    public final static int DETECTION_DISTANCE = 60;

    /**
     *  De plaats die minimum tussen twee vissen moet zitten
     *  Deze afstand moet altijd kleiner zijn dan de DETECTION_DISTANCE
     */
    public final static int SEPARATE_DISTANCE = 30;

    /**
     *  Breedte van het venster
     */
    public final static int CANVAS_WIDTH = 500;

    /**
     *  Hoogte van het venster
     */
    public final static int CANVAS_HEIGHT = 500;

    /**
     *  Grootte van de Orka's
     */
    public final static Dimension GROOTTE_ORKA = new Dimension(40, 40);

    /**
     *  Grootte van de Vissen
     */
    public final static Dimension GROOTTE_VIS = new Dimension(20, 20);

    /**
     *  Maximum grootte van een obstakel
     */
    public final static Dimension MAX_GROOTTE_OBSTAKEL = new Dimension(25, 25);

    /**
     *  Minimum grootte van een obstakel
     */
    public final static Dimension MIN_GROOTTE_OBSTAKEL = new Dimension(15, 15);

    /**
     * Om de hoeveel milliseconden moet ververst worden
     */
    public final static int REFRESH_INTERVAL = 20;

    /**
     * Maximum aantal verschillende vormen van de stromingsgebieden
     */
    public final static int MAX_DIFFERENT_FLOW_SHAPES = 3;

}
